#ifndef _GAMESTATE_H_
#define _GAMESTATE_H_

#include <Windows.h>

class CStateManager;

class CGameState
{
public:

	CGameState(CStateManager* pManager);
	virtual ~CGameState();

	virtual void OnKeyDown(WPARAM ) { }
	virtual void OnKeyUp(WPARAM )   { }
	virtual void OnChar(WPARAM )   { }
	virtual void Update(DWORD )  { }
	virtual void Draw()  { }

	virtual void EnterState()  { }
	virtual void LeaveState()   { }

protected:

	void ChangeState(CGameState* pNewState);

	CStateManager* m_pStateManager;
};

#endif  